/*
 * Copyright 2008 Carnegie Mellon University
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *  
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, 
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package edu.cmu.lti.sepia.infra.run;

import java.io.InputStream;

import edu.cmu.lti.sepia.data.xml.Deserializer;
import edu.cmu.lti.sepia.infra.run.model.ExtractionResultSet;
import edu.cmu.lti.sepia.infra.run.model.QuestionAnalysisResultSet;
import edu.cmu.lti.sepia.infra.run.model.RetrievalResultSet;
import edu.cmu.lti.sepia.infra.run.model.SelectionResultSet;

public class RunXmlFacade {
  
  // Never make Deserializers static class instance!!
  
  public static QuestionAnalysisResultSet deserializeQuestionAnalysisResultSet( InputStream is ) throws Exception {
    Deserializer qaDeserializer = new Deserializer(new QuestionAnalysisXmlToObj());
    return (QuestionAnalysisResultSet)qaDeserializer.deserialize(is);
  }
  
  public static RetrievalResultSet deserializeRetrievalResultSet( InputStream is ) throws Exception {
    Deserializer rsDeserializer = new Deserializer(new RetrievalResultXmlToObj());
    return (RetrievalResultSet)rsDeserializer.deserialize(is);
  }
  
  public static SelectionResultSet deserializeSelectionResultSet( InputStream is ) throws Exception {
    Deserializer agDeserializer = new Deserializer(new SelectionResultXmlToObj());
    return (SelectionResultSet)agDeserializer.deserialize(is);
  }

  public static String serializeQuestionAnalysisResultSet( QuestionAnalysisResultSet resultSet ) {
    return QuestionAnalysisObjToXml.serialize(resultSet);
  }
  
  public static String serializeRetrievalResultSet( RetrievalResultSet resultSet ) {
    return RetrievalResultObjToXml.serialize(resultSet);
  }
  
  public static String serializeExtractionResultSet( ExtractionResultSet resultSet ) {
    return ExtractionResultObjToXml.serialize(resultSet);
  }
  
  public static String serializeSelectionResultSet( SelectionResultSet resultSet ) {
    return SelectionResultObjToXml.serialize(resultSet);
  }
  
}
